Angular অ্যাপ্লিকেশনে রুট মডিউল (বা AppModule) হলো মূল মডিউল যা পুরো অ্যাপ্লিকেশনটির কেন্দ্রীয় মডিউল হিসেবে কাজ করে। এটি Angular অ্যাপ্লিকেশনটির ইনিশিয়াল কনফিগারেশন এবং স্টার্টিং পয়েন্ট হিসেবে কাজ করে। AppModule-এ অ্যাপ্লিকেশনটির প্রয়োজনীয় মডিউল, কম্পোনেন্ট, সার্ভিস এবং অন্যান্য ডিপেন্ডেন্সি কনফিগার করা হয়।
রুট মডিউল (AppModule) কী?
AppModule হলো Angular অ্যাপ্লিকেশনটির মুল মডিউল। এটি অ্যাপ্লিকেশনটির অন্যান্য সব মডিউল এবং কম্পোনেন্টকে একত্রিত করে এবং অ্যাপ্লিকেশনটির স্ট্রাকচার সেটআপ করে। যখন Angular অ্যাপ্লিকেশন শুরু হয়, তখন AppModule-কে প্রথমে লোড করা হয়। এর মধ্যে ব্যবহৃত ডেকোরেটর @NgModule অ্যাপ্লিকেশনটির বিভিন্ন অংশ যেমন কম্পোনেন্ট, ডিরেক্টিভ, পাইপ, এবং সার্ভিস সম্পর্কে Angular-কে জানিয়ে দেয়।
AppModule এর গঠন
Angular অ্যাপ্লিকেশনের রুট মডিউল বা AppModule সাধারণত app.module.ts ফাইলে থাকে। এর মধ্যে @NgModule ডেকোরেটরের মাধ্যমে অ্যাপ্লিকেশনের মডিউল, কম্পোনেন্ট এবং অন্যান্য ডিপেন্ডেন্সি কনফিগার করা হয়।
AppModule এর উদাহরণ:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module'; // রাউটিং মডিউল
@NgModule({
declarations: [
AppComponent, // কম্পোনেন্ট ডিক্লেয়ারেশন
],
imports: [
BrowserModule, // ব্রাউজার মডিউল
AppRoutingModule, // রাউটিং কনফিগারেশন
],
providers: [], // সার্ভিস এবং অন্যান্য ডিপেন্ডেন্সি
bootstrap: [AppComponent] // অ্যাপ্লিকেশনটি যেটি দিয়ে শুরু হবে
})
export class AppModule { }
@NgModule ডেকোরেটর
Angular-এ মডিউল কনফিগারেশন করতে @NgModule ডেকোরেটর ব্যবহার করা হয়। এটি মূলত একটি মেটাডেটা অ্যানোটেশন যা Angular-কে নির্দেশ দেয় কোন ক্লাসগুলি, কম্পোনেন্টগুলি এবং মডিউলগুলি অ্যাপ্লিকেশনটির অংশ হিসেবে যুক্ত হবে।
@NgModule এর অংশগুলি:
declarations: এই অংশে অ্যাপ্লিকেশনের সমস্ত কম্পোনেন্ট, ডিরেক্টিভ এবং পাইপ ঘোষণা করা হয়। প্রতিটি কম্পোনেন্টের জন্য একটি আলাদা এন্ট্রি থাকে।
উদাহরণ:
declarations: [AppComponent]এখানে
AppComponentহলো অ্যাপ্লিকেশনের প্রধান কম্পোনেন্ট।imports: এই অংশে অ্যাপ্লিকেশনের অন্যান্য মডিউলগুলোকে অন্তর্ভুক্ত করা হয়, যেমন
BrowserModule,FormsModule, অথবা আপনার নিজস্ব রাউটিং মডিউল।উদাহরণ:
imports: [BrowserModule, AppRoutingModule]providers: অ্যাপ্লিকেশনের সার্ভিস বা ডিপেন্ডেন্সি এখানে ঘোষণা করা হয়। সাধারণত সার্ভিসের ইনজেকশন ব্যবস্থাপনার জন্য এই অংশ ব্যবহার হয়। এটি কোডে কোথাও ব্যবহার করার জন্য সার্ভিস বা ডিপেন্ডেন্সি সরবরাহ করে।
উদাহরণ:
providers: [UserService]bootstrap: অ্যাপ্লিকেশনটির যেকোনো এক কম্পোনেন্ট যেটি প্রথম লোড হবে, তাকে
bootstrapঅ্যারে তে ঘোষণা করা হয়। সাধারণত এটিAppComponentহয়।উদাহরণ:
bootstrap: [AppComponent]
AppModule এবং অ্যাপ্লিকেশন লোড
Angular অ্যাপ্লিকেশন শুরু হওয়ার সময় AppModule প্রথমে লোড হয়। এটি মূল রুট কম্পোনেন্ট AppComponent কে ইনিশিয়ালাইজ করে, এবং তারপর রাউটিং বা অন্যান্য ফিচার গুলি কার্যকর করতে অন্যান্য মডিউল এবং কম্পোনেন্টগুলিকে লোড করা হয়। Angular এই প্রক্রিয়া সম্পন্ন করার পর, অ্যাপ্লিকেশনটি কাজ শুরু করে।
AppModule এর অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্য
- Lazy Loading: অ্যাপ্লিকেশনের পারফরমেন্স উন্নত করার জন্য বিভিন্ন মডিউলগুলিকে "Lazy Loading"-এ লোড করা যেতে পারে, অর্থাৎ অ্যাপ্লিকেশন শুরু হওয়ার সময় শুধুমাত্র প্রয়োজনীয় মডিউল গুলোই লোড হবে, বাকি মডিউলগুলো পরবর্তীতে যখন দরকার হবে তখন লোড হবে।
- Feature Modules: অ্যাপ্লিকেশনটি বড় হলে, বিভিন্ন ফিচারের জন্য আলাদা মডিউল তৈরি করা হয়, যেমন
UserModule,AdminModule, ইত্যাদি। এতে কোড আরও মডুলার হয়ে ওঠে এবং রক্ষণাবেক্ষণ সহজ হয়। - Routing: রাউটিং কনফিগারেশনের জন্য সাধারণত একটি আলাদা মডিউল তৈরি করা হয়, যেমন
AppRoutingModule, যাAppModule-এ ইমপোর্ট করা হয়। এর মাধ্যমে এক পেজ থেকে অন্য পেজে নেভিগেশন পরিচালনা করা হয়।
সারাংশ
AppModule হলো Angular অ্যাপ্লিকেশনের মূল মডিউল যা অ্যাপ্লিকেশনের সমস্ত কম্পোনেন্ট এবং মডিউলকে একত্রিত করে। এটি @NgModule ডেকোরেটরের মাধ্যমে অ্যাপ্লিকেশনের কনফিগারেশন পরিচালনা করে এবং অ্যাপ্লিকেশন লোডের শুরুতেই কার্যকর হয়। AppModule কম্পোনেন্ট, সার্ভিস, রাউটিং এবং অন্যান্য গুরুত্বপূর্ণ ডিপেন্ডেন্সির জন্য একটি সেন্ট্রাল কনফিগারেশন পয়েন্ট হিসেবে কাজ করে।